<!-- 蓝色简洁登录页面 -->
<template>
	<view class="login-bg">
		<image class="img-a" src="@/static/bg1.png"></image>
		<view class="t-login">
			<view class="t-b">登 录</view>
			<form class="cl">
				<view class="t-a">
					<image src="@/static/user.png"></image>
					<input type="number" name="phone" placeholder="请输入手机号码" maxlength="11" v-model="userFrom.username" />
				</view>
				<view class="t-a">
					<image src="@/static/pwd.png"></image>
					<input type="password" name="code" maxlength="16" placeholder="请输入密码" v-model="userFrom.password" />
				</view>
				<view class="t-c" @tap="forgotPwd()">忘记密码</view>
				<button @tap="userLogin()">登 录</button>
			</form>
		</view>
		<view class="cardBox">
			<view>
				还没有登录账号？
				<text class="txt" @tap="reg('/pages/login/reg')">立刻注册</text>
			</view>
		</view>
		<image class="img-b" src="../../static/bg2.png"></image>
	</view>
</template>
<script>
	import { getCode, appRegister, loginUser, getInfo,allupload } from '@/utils/api/login.js'; 
export default {
	data() {
		return {
			// 控制登录按钮是否显示加载状态
			loginShow: false,
			// 用户登录表单数据
			userFrom: {
				username: '', // 用户名（手机号）
				password: ''  // 密码
			}
		};
	},
	
	methods: {
		reg(e){
			uni.navigateTo({
				url:e
			})
		},
		/**
		 * 获取用户信息并跳转到主页
		 */
		getUserInfo() {
			this.$api.getInfo().then(res => {
				// 成功获取用户信息
				if (res.code == 200) {
					// 将用户信息存储到Vuex store
					uni.setStorageSync('setUserInfo', res.user);
					// 重新加载主页
					uni.reLaunch({
						url: '/pages/index/index'
					});
				}
			})
		},
		
		/**
		 * 用户登录方法
		 */
		userLogin() {
			// 开启登录按钮的加载状态
			this.loginShow = true;
			
			// 验证手机号格式
			if ((this.userFrom.username)) {
				// 验证密码长度
				if (this.userFrom.password.length >= 5) {
					// 发送登录请求
					loginUser(this.userFrom).then(res => {
						// 如果登录成功
						if (res.code === 200) {
							// 存储token
							uni.setStorageSync('token', res.token);
							// 获取用户信息
							this.getUserInfo();
							// 显示成功的提示
							uni.showToast({
								title: '登录成功',
								icon: 'success',
								duration: 2000
							});
						} else {
							// 显示失败的提示
							uni.showToast({
								icon: 'none',
								title: res.message || '登录失败，请重试！',
								duration: 2000
							});
						}
					}).catch(error => {
						// 请求出错时显示错误提示
						uni.showToast({
							icon: 'none',
							title: error || '系统错误',
							duration: 2000
						});
					}).finally(() => {
						// 不论成功或失败，最后都要关闭加载状态
						this.loginShow = false;
					});
				} else {
					// 密码长度不符合要求时的提示
					uni.showToast({
						icon: 'none',
						title: '请输入5~20个字符作为密码！',
						duration: 2000
					});
					// 关闭加载状态
					this.loginShow = false;
				}
			} else {
				// 手机号格式不正确时的提示
				uni.showToast({
					title: '请输入有效的手机号码',
					icon: 'none'
				});
				// 关闭加载状态
				this.loginShow = false;
			}
			
			// 调试输出
			console.log(123);
		}
	}
};
</script>
<style>
.img-a {
	width: 100%;
}
.img-b {
	width: 100%;
	height: 45px;
	bottom: 0;
	position: absolute;
}
.login-bg {
	height: 100vh;
	/* background: linear-gradient(to bottom, #ff6a9a, #fe7d76); */
	background-color: #000000;
}

.t-login {
	width: 650rpx;
	
	padding: 55rpx 55rpx 55rpx 55rpx;
	margin: 0 auto;
	font-size: 28rpx;
	background-color: #ffffff;
	border-radius: 20rpx;
	position: relative;
	margin-top: -200rpx;
	box-shadow: 0 5px 7px 0 rgba(0, 0, 0, 0.15);
	z-index: 9;
}
.t-login button {
	font-size: 28rpx;
	background: linear-gradient(to right, #ff8f77, #fe519f);
	color: #fff;
	height: 90rpx;
	line-height: 90rpx;
	border-radius: 50rpx;
}

.t-login input {
	padding: 0 20rpx 0 120rpx;
	height: 90rpx;
	line-height: 90rpx;
	margin-bottom: 50rpx;
	background: #f6f6f6;
	border: 1px solid #f6f6f6;
	font-size: 28rpx;
	border-radius: 50rpx;
	color: #000000;
}

.t-login .t-a {
	position: relative;
}

.t-login .t-a image {
	width: 60rpx;
	height: 40rpx;
	position: absolute;
	left: 25rpx;
	top: 28rpx;
	padding-right: 20rpx;
}

.t-login .t-b {
	text-align: left;
	font-size: 46rpx;
	color: #7E7F94;
	font-weight: bold;
	margin: 0 0 50rpx 20rpx;
}

.t-login .t-d {
	text-align: center;
	color: #999;
	margin: 80rpx 0;
}

.t-login .t-c {
	text-align: right;
	color: #c0c0c0;
	margin: -20rpx 30rpx 40rpx 0;
}

.t-login .t-f {
	text-align: center;
	margin: 200rpx 0 0 0;
	color: #666;
}

.t-login .t-f text {
	margin-left: 20rpx;
	color: #aaaaaa;
	font-size: 27rpx;
}

.t-login .uni-input-placeholder {
	color: #aeaeae;
}

.cl {
	zoom: 1;
}

.cl:after {
	clear: both;
	display: block;
	visibility: hidden;
	height: 0;
	content: '\20';
}
.cardBox {
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-webkit-flex-direction: row;
	flex-direction: row;
	-webkit-box-align: center;
	-webkit-align-items: center;
	align-items: center;
	padding: 5px;
	background: #ffffff;
	opacity: 0.9;
	-webkit-border-radius: 20rpx;
	border-radius: 0 0 20rpx 20rpx;
	height: 70rpx;
	width: 600rpx;
	margin: 0 auto;
	position: relative;
	text-align: center;
	line-height: 70rpx;
	color: #aaa;
	font-size: 28rpx;
}
.cardBox .txt {
	color: #fe519f;
}
</style>
